<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>结构定义Scriptlet</title>
</head>
<body>
<%! // 结构定义Scriptlet，是在类中进行的内容定义
    int count = 0; // 全局变量
%>
<%  // 代码编写Scriptlet，相当于在方法中进行的代码定义
    int number = 100; // 局部变量
%>
<%  // 尽管在一个JSP文件中可以有多个不同的代码编写Scriptlet，但是这些Scriptlet都存在有关联
    out.println("<h1>count = " + (count++) + "</h1>");
    out.println("<h1>number = " + (number++) + "</h1>");
%>

<%! // 结构定义Scriptlet，是在类中进行的内容定义
    public static final String MESSAGE = "www.yoootk.com"; // 全局常量
%>
<%  // 尽管在一个JSP文件中可以有多个不同的代码编写Scriptlet，但是这些Scriptlet都存在有关联
    out.println("<h1>" + MESSAGE + "</h1>");
%>

<%! // 结构定义Scriptlet，是在类中进行的内容定义
    public int sum(int... args) {  // 可变参数
        int all = 0; // 保存累加结果
        for (int temp : args) {
            all += temp; // 实现累加
        }
        return all;
    }
%>
<%  // 尽管在一个JSP文件中可以有多个不同的代码编写Scriptlet，但是这些Scriptlet都存在有关联
    out.println("<h1>" + sum(1, 2, 3, 4, 5, 6, 7, 8) + "</h1>");
%>

<%! // 结构定义Scriptlet，是在类中进行的内容定义
    class Book {    //. 图书类
        private String title;
        private String author;
        private double price;

        public Book(String title, String author, double price) {
            this.title = title;
            this.author = author;
            this.price = price;
        }

        @Override
        public String toString() {
            return "title = " + this.title + "、author = " + this.author + "、price = price";
        }
    }
%>
<%  // 尽管在一个JSP文件中可以有多个不同的代码编写Scriptlet，但是这些Scriptlet都存在有关联
    out.println("<h1>" + new Book("Java", "Small.Lee", 99.8) + "</h1>");
%>
</body>
</html>
